package com.practice.feature;


/**
 * 包装类型
 * 缓存机制
 * 自动拆箱与自动装箱
 */
public class packagingType {
    public static void main(String[] args) {
        //缓存机制
        Integer a = 10;
        Integer b = 10;
        //由于Java中缓存了-128到127的数字类型数据，a与b指向实际是同一个对象
        System.out.println(a==b);
        Integer c = new Integer(10);
        System.out.println(a==c);

        Integer c1 = 138;
        Integer c2 = 138;
        System.out.println(c1==c2);

        Character a1 = 'a';
        Character a2 = 'a';
        //同理字符类型数据也有0-127的缓存
        System.out.println(a1==a2);

        //自动插箱和自动装箱，是指在java基本数据类型与包装类型转化的过程中，自动调用了函数完成转化。
        Integer b1 = 30;
        //等价于
        Integer b2 = Integer.valueOf(30);
        System.out.println(b1==b2);

        int b3 = b1;
        //等价于
        int b4 = b1.intValue();
        System.out.println(b3==b4);
    }
}
